#include "time.h"

// int main()
// {
//     // 类的实例化 -- 用类类型实例化出t1和t2两个对象
//     Time t1;
//     Time t2;

//     // 类的访问限定符
//     // t1.m_year = 2024; // private成员变量，不允许直接访问
//     t1.setYear(2024); // 但是可以通过调用对外开放的接口进行修改，避免了直接对私有成员进行修改的风险
//     t1.setMonth(11); // 其中，对象调用成员函数时，通过将对象传递给隐含的this指针，实现对对象的成员变量进行访问
//     t1.setDay(18);
//     t1.showTime();

//     t2.setYear(2024);
//     t2.setMonth(11);
//     t2.setDay(17);
//     t2.showTime();
//     return 0;
// }

class A
{
private:
    int m_a;
    char m_b;
    int m_c;
};

class B
{
private:
    int m_a;
    char m_b;
    int m_c;

public:
    void show()
    {
        cout << m_a << m_b << m_c << endl;
    }
};

class C
{
    void show()
    {
        cout << "A:" << endl;
    }
};

class D
{};

int main()
{
    cout << sizeof(A) << endl; // 与结构体内存对齐规则一样计算成员变量的内存
    cout << sizeof(B) << endl; // 函数放在了公共代码段，计算内存的时候不需要考虑函数指针的大小
    cout << sizeof(C) << endl; 
    cout << sizeof(D) << endl;// 空类没有成员变量，但是还是给了1byte，用来表示存在过

    return 0;
}